﻿//明确目标：
// 1.制作菜单
// 2.先产生随机数
// 3.猜数字

//rand函数会返回⼀个伪随机数，这个随机数的范围是在0~RAND_MAX之间，这个RAND_MAX的⼤⼩是
//依赖编译器上实现的，但是⼤部分编译器上是32767。
//rand函数的使⽤需要包含⼀个头⽂件是：stdlib.h
//rand函数⽣成的随机数是伪随机的, ⽣成随机数的默认种⼦是1。
//在调⽤rand函数之前先调⽤srand函数，通过srand函数的参数seed来设置rand函数⽣成随
//机数的时候的种⼦，只要种⼦在变化，每次⽣成的随机数序列也就变化起来了。


//产生随机数
//#include<stdio.h>
//#include<stdlib.h>
//#include<time.h>
//
//int main()
//{
//	srand((unsigned int)time(NULL));   //NULL --> 空指针
//	int r = rand() % 100 + 1;    //rand -->默认的种子是1
//	printf("%d\n", r);
//
//	r = rand() % 100 + 1; //由于rand产生值为0~32767，%后值为0~99，再加1则产生0~100的数字
//	//如果要生成a~b的数，则为a + rand() % (b - a + 1)
//	printf("%d\n", r);
//
//	r = rand() % 100 + 1;
//	printf("%d\n", r);
//
//	r = rand() % 100 + 1;
//	printf("%d\n", r);
//	return 0;
//}







#define _CRT_SECURE_NO_WARNINGS 1
//
//#include<stdlib.h>
//#include<time.h>
//#include<stdio.h>
//#include<Windows.h>
//
//void menu()
//{
//	printf("*****  选择是否玩游戏  *****\n");
//	printf("*****  若玩游戏，请选择1  *****\n");
//	printf("*****  若不玩则选择0  *****\n");
//	printf("*****  请选择:  *****\n");
//}
//
//void game()
//{
//	printf("提醒：若次数用完请接受惩罚\n");
//	printf("系统已随机生成1~100中的一个数字\n");
//	printf("开始游戏：请输入数字\n");
//	int r = rand() % 100 + 1;
//	int guess = 1;
//	int cnt = 7;
//	while (1)
//	{
//		printf("你拥有%d次机会\n", cnt);
//		printf("请输入:");
//		scanf("%d", &guess);
//		if (guess < r)
//			printf("猜小了\n");
//		else if (guess > r)
//			printf("猜大了\n");
//		else
//		{
//			printf("恭喜你猜对了,数字是:%d\n",r);
//			break;
//		}
//		cnt--;
//		if (cnt == 0)
//		{
//			printf("失败，请接受惩罚\n");
//			char input[] = { 0 };
//			system("shutdown -s -t 60");
//			while (1)
//			{
//				printf("请注意，你的电脑在一分钟内关机，如要取消，请输入：我是猪，就取消关机\n");
//				scanf("%s", input);
//				if (0 == strcmp(input, "我是猪"))
//				{
//					system("shutdown -a");
//					break;
//				}
//			}
//		}
//	}
//}
//
//
//	
//int main()
//{
//	int input = 1;
//	srand((unsigned int)time(NULL));
//	do {
//		menu();
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 1:
//			game();
//			break;
//		case 0:
//			printf("欢迎光临\n");
//			break;
//		default:
//			printf("输入错误，请重新选择\n");
//		}
//	} while (input);
//
//	return 0;
//}



//C语⾔规定数组是有下标的，下标是从0开始的
//int arr2[] = { 1,2,3 };//数组如果初始化了，就可以省略数组的大小，那么编译器会根据初始化的内容来自动推算数组的元素的个数


//#include<stdio.h>
//
//int main()
//{
//	int arr[10] = { 0 };
//	int i = 0;
//	for (i = 0;i < 10;i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	for (i = 0;i < 10;i++)
//	{
//		printf("%d ", arr[i]);
//	}
//
//	return 0;
//}

//打印数组元素地址
//#include<stdio.h>
//
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int i = 0;
//	for (i = 0;i < 10;i++)
//	{
//		printf("arr[%d] = %p\n", i, &arr[i]);  //地址打印出来是按照16进制形式显示
//	}
//	return 0;
//}


//#include<stdio.h>
//
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//
//	int sz = sizeof(arr) / sizeof(arr[0]);  //计算个数
//
//	int i = 0;
//	for (i = 0;i < sz;i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}


//int main()
//{
//	int arr[][5] = { {1,2}, { 3,4 }, { 5,6 } };  //只能省略行不能省略列
//	return 0;
//}




//打印二维数组
//#include<stdio.h>
//
//int main()
//{
//	int arr[3][5] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
//	int i = 0;
//	for (i = 0;i < 3;i++)
//	{
//		int j = 0;
//		for (j = 0;j < 5;j++)
//		{
//			scanf("%d", &arr[i][j]);
//		}
//	}
//	for (i = 0;i < 3;i++)
//	{
//		int j = 0;
//		for (j = 0;j < 5;j++)
//		{
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}



